#ifndef STATEMANAGER_H
#define STATEMANAGER_H

#include <QObject>
#include <QVector>

class State;
class PaintManager;

class StateManager : public QObject
{
    Q_OBJECT
public:
    explicit StateManager(QObject *parent = 0);

    void pushState(State *state);
    State *popState();
    State *curState();

    PaintManager *getPaintManager() const;
signals:
    void updated();

public slots:

private:
    QVector<State *> myStates;

    PaintManager *myPaintManager;
};

#endif // STATEMANAGER_H
